home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1997 February
/
EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso
/
enigma
/
earcd
/
comm
/
comm5
/
nwsbrkr5.lha
/
Reader
/
NewsBreaker
/
src
/
ums
/
Login.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-12-08
|
2KB
|
70 lines
BOOL
Login ()
{
BOOL okay = TRUE; /* returncode */
/*
args:
Eine Struktur 'args' für DOS/ReadArgs() definieren:
Diese Struktur wird von ReadArgs() ausgefüllt: mit den Argumenten, die
Anwender in der Shell eingetippt hat. Aus der Shell-Eingabe "Newsbreaker
USER sysop PASSWORD geheim" bastelt ReadArgs einen Pointer auf "sysop"
in das Strukturelement user. Und ein Zeiger auf String "geheim" wird in
struct.passwd geschrieben.
Die Struktur args wird zur Intitalisierung komplett geNULLT.
todo: Vorgabe (default) für server
*/
static struct
{
char *user;
char *passwd;
char *server;
}
args =
{
NULL, NULL, NULL
};
struct RDArgs *rda;
/*
CLI Start: Kommandozeile mit DOS/ReadArgs() auswerten. Der erste Parameter
ist die Schablone (Template) für die Steuerung von ReadArgs, abhängig
von dem Inhalt des Template werden Daten ab Adresse & args geschrieben.
Das sind: mindestens (weil "/A" Flag gesetzt) Username und Passwort,
optional Server.
*/
#define TEMPLATE "USER/A,PASSWORD/A,SERVER"
rda = ReadArgs (TEMPLATE, (LONG *) & args, NULL);
/* War ReadArgs erfolgreich? */
if (rda)
{
/* erzeuge 3x ein String-Duplikat. Setze STRPTR auf seine Adresse: */
user = strdup (args.user ? args.user : "");
if (!user) user = "";
passwd = strdup (args.passwd ? args.passwd : "%");
if (!passwd) passwd = "%";
server = strdup (args.server);
if (!server) server = "default";
}
else
{
okay = FALSE;
ShowError ("ReadArgs() meldet Fehler.");
}
/* Free ReadArgs Resourcen */
if (rda)
FreeArgs (rda);
return (okay);
}